Camera Control

ABSTRACT

A system including a camera that includes a lens having an aperture, a tripod configured to support the camera, a mount configured to be coupled the tripod and to the camera, the mount including a pivot that is configured such that the camera is rotatable around an axis that is aligned with the aperture of the camera, a motor configured to control the rotation of the mount, a memory containing computer readable instructions, that when executed by a processor, cause the processor to, calculate a desired position of the camera using sensor information, control the motor such that the camera is moved to the desired position, control the shutter of the camera to capture an image, and store the captured image.

CROSS-REFERENCE TO RELATED ACTIONS

This application claims the benefit of, prior U.S. ProvisionalApplication No. 61/321,297, filed Apr. 6, 2010, which is incorporated byreference herein in its entirety.

BACKGROUND

Today, digital cameras have proliferated to level unimaginable only afew short years ago. Not only are digital cameras stand-alone devices,they are also features that are added to numerous electronic products.Digital cameras can now be found on, for example, portable electronicdevices such as mobile phones, IPODS, and IPHONES. Typically, however,digital cameras found on portable electronic devices suffer fromlimitations such as limited field of view, limited resolution, and smallaperture.

SUMMARY

In general, in an aspect, the embodiments of the invention may provide asystem including a camera that includes a lens having an aperture, atripod configured to support the camera, a mount configured to becoupled the tripod and to the camera, the mount including a pivot thatis configured such that the camera is rotatable around an axis that isaligned with the aperture of the camera, a motor configured to controlthe rotation of the mount, a memory containing computer readableinstructions, that when executed by a processor, cause the processor to,calculate a desired position of the camera using sensor information,control the motor such that the camera is moved to the desired position,control the shutter of the camera to capture an image, and store thecaptured image.

Implementations of the invention can provide one or more of thefollowing features. The processor is included in the camera. The motoris configured to control the rotation of the mount around a verticalaxis that is aligned with the aperture of the camera. The computerreadable instructions are further configured to cause the processor tocapture a plurality of images that are combinable to create a compositeimage. The composite image is selected from the group consisting of apanoramic image, a cylindrical image, a spherical image, and a highdynamic range image. The computer readable instructions are furtherconfigured to cause the processor to combine the plurality of images tocreate a composite image.

In general, in another aspect, embodiments of the invention may providea non-transitory computer readable medium including computer readableinstructions that, when executed by a processor, are configured to causethe processor to control the operation of a camera, collect informationfrom a sensor in the camera, process the sensor information to calculatea position of the camera, control a motor attached to the camera toposition the camera using the calculated position, wherein the motor isconfigured to rotate the camera around an axis that is aligned with anaperture of the camera, capture an image using the camera, and store thecaptured image.

Implementations of the invention can provide one or more of thefollowing features. The computer readable instructions are executed in aprocessor included in the camera. Controlling the motor includescontrolling the rotation of the camera around a vertical axis that isaligned with the aperture of the camera. The computer readableinstructions are further configured to cause the processor to capture aplurality of images that are combinable to create a composite image. Thecomputer readable instructions are further configured to cause theprocessor to create a plurality of images that are combinable into atleast one of a panoramic image, a cylindrical image, an spherical image,and a high dynamic range image. The computer readable instructions arefurther configured to cause the processor to combine the plurality ofimages to create a composite image.

Various aspects of the invention may provide one or more of thefollowing capabilities. Multi-picture composite images can be created.Panoramic, cylindrical, and spherical images can be captured. A cameracan be automatically controlled and positioned using an imageapplication. A camera can provide information to an image applicationthat is used to control the camera. Images captured by the camera can bestored remotely in the cloud. A user can be provided guidance of how tocapture successive images used to create a multi-picture compositeimage. Images captured by the camera can be backed up by automaticallysynchronizing uploading the images to a storage location using anyavailable communications wireless network.

These and other capabilities of the invention, along with the inventionitself, will be more fully understood after a review of the followingfigures, detailed description, and claims.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a diagram of a system for capturing images.

FIG. 2 is a diagram of a portion of the system shown in FIG. 1.

FIG. 3 is a diagram of a portion of the system shown in FIG. 1.

FIG. 4 is a diagram of a system for capturing images.

FIG. 5 is a diagram of a system for capturing images.

FIG. 6 is a diagram of a portion of the system shown in FIG. 1.

FIGS. 7-11 are exemplary screen shots of a computer application for usewith a camera.

FIG. 12 is a process flow diagram of a process for use with a camera.

DETAILED DESCRIPTION

Embodiments of the invention provide techniques for capturing imagesusing a smartphone. In one embodiment, the smartphone is supported on amount that is configured such that the smartphone can rotate aboutseveral axes that aligned with the focal plane/point of a cameraincluded in the smart phone. Some embodiments include a motorized mountthat can be configured to automatically rotate the smartphone to captureimages in an automated fashion. An image capture application can also beprovided that is configured to work with and control the mount and tocontrol the smartphone to capture images. The image capture applicationcan be configured automatically capture a series of images using thesmartphone that can be combined into a single image. The image captureapplication can also be configured to automatically copy media files toa remote storage location. The image capture application can also beconfigured to allow a user to edit and/or manipulate images captured bythe smart phone. The image capture application can also be configured toregister the date, time, location, direction, and camera orientation ofevery image and/or video that is captured. This information can then beattached to photographs and videos that are captured such that it caneasily be organized and searched at a later time. Other embodiments arewithin the scope of the invention.

Referring to FIGS. 1-6, an exemplary system 5 includes a camera 10, acase 15, a mount 20, and a tripod 25. While FIG. 1 shows an APPLE IPHONEas the camera 10, other cameras can be used.

The camera 10 is preferably a smart camera that is configured to takepictures and/or capture video. The camera 10 preferably includes amicroprocessor on which a third-party application can be executed. Thecamera 10 can be a stand-alone camera or can be part of another devicesuch as, a smart phone, MP3 player, or tablet PC. Examples of the camera10 are APPLE IPHONE, APPLE IPAD, RIM BLACKBERRY, APPLE IPOD, and DROIDINCREDIBLE. Preferably, the camera 10 can be configured to download andexecute applications provided by third parties (e.g., via an Internetconnection). For example, the APPLE IPHONE is configured to downloadapplications from an application store. The combination of the camerafunctionality and the ability to execute third-party applications cancreate novel functionality and enable users to create images of varyingquality and type that can be shared online.

The mount 20 is preferably configured to connect to the camera 10 suchthat the mount 20 can support and/or maneuver the camera 10. The mount20 can connect directly to a fitting in the camera 10, and/or can use anadapter such as a case 15 that is configured to fit the camera 10.Preferably, the mount 20 includes one or more gimbals that areconfigured such that it creates two rotational planes that intersect atthe aperture and/or focal plane of the lens of the camera 10. In thisconfiguration, parallax that results from rotation of the camera 10 canbe reduced or eliminated. The mount 20 can be set on a stable surfaceand/or can be used in conjunction with a tripod (or other hardware usedto eliminate vibrations) to provide manual and/or motorized control ofthe rotation of the camera 10. The mount 20 can also function as ahandle for the camera 10.

An exemplary version of the mount 20 includes pivots 50, 55, 60, 65 thatare configured to pivot along different axes. For example, pivots 50 and55 are configured to allow the camera 10 to rotate about the y-axis, thepivot 60 is configured to allow the camera 10 to rotate about thex-axis, and the pivot 65 is configured to allow the camera 10 to rotateabout the z-axis. The pivots 50, 55, 60, 65 can be configured to belocked in position (e.g., using a lever). The pivots 50, 55, 60, 65 canalso include one or more mechanical detents at one or more predefinedlocations (e.g., at 45 and 90 degrees).

The mount 20 can also include one or more motors 70 that are configuredto rotate the camera 10 under the control of a computerized application.Preferably, the motors used to rotate the camera 10 are small motorsrequiring little electrical power. The motor can be configured to rotatethe camera 10 on one or more pivot points of the mount 20 (e.g., x, y,and z axes). Preferably, power is provided to the motor by a batterypack 75, and/or an external power connection. Motorized embodiments ofthe mount 20 can be configured in various ways. For example, there canbe a single motor 70 configured to rotate the camera 10 about a singleaxis or multiple motors 70 can be used to rotate the camera 10 aboutmore than one axis. For example, a panorama mount can automate imagecapture in the horizontal plane while the vertical panning/tilt anglecan be adjusted manually to capture a virtual reality or sphericalimage. A virtual reality mount can be motorized on both the vertical andhorizontal plane and can fully automate capturing a spherical image.

The mount 20 can be configured to communicate with one or more otherdevices. For example, the mount 20 can be configured to communicate withthe camera 10, a remote computer, and/or remote control using a wireless(e.g., Infrared, Bluetooth, 802.11, etc) and/or wired connection (e.g.,a multi-pin connector). The remote control can be, for example, a smalltraditional handheld unit, or another processor such as a smart phone,PC, and/or tablet operating a control application. The communicationconnections can be used to control the mount 20 (e.g., to control thedirection and speed of movement in the vertical and/or horizontalplanes) and/or to control the camera 10 itself (e.g., to control theparameters of image capture). The camera 10 can also use the connectionwith the mount 20 to provide information collected by sensors in thecamera 10. For example, the camera 10 can provide information capturedby onboard sensors (e.g., a gyroscope, clock, GPS receiver, and/orcompass).

The mount 20 and/or the camera 10 can be configured to be controlled bya remote control 80. For example, the remote control 80 can be used toremotely control how and when the camera 10 takes a picture. The remotecontrol 80 can also be used to control the movement of a motorizedversion of the mount 20. The remote control 80 can also be used for“follow me” functionality where the mount 20 is configured toautomatically point the camera at the remote so that, for example, theperson holding the remote control 80 is always in the picture and/orvideo being captured by the camera 10. The remote control can also beconfigured to snap to the mount 20 when not in use.

The mount 20 can include additional features that make control of thecamera 10 easier. For example, the mount 20 can include a detent on thepivot for the vertical plane that can lock the camera 10 in position tosimplify initial setup. This can be used in conjunction with, forexample, an electronic version of a bubble level in an image applicationand can be used to level the mount when adjusting a tripod or othercamera stabilization device. The mount 20 can also be configured toeasily switch the camera 10 between portrait and landscape modes.

The tripod 25 can be a standard tripod. For example, the tripod 25 caninclude legs 30 that are used to support to stabilize the camera 10. Themount 20 and/or tripod 25 can also be configured to function as a handlewhen not being used to support the camera 10. One of the three legs ofthe tripod can be configured as a larger leg such that the other twosmaller legs, when folded, fit inside the larger leg (e.g., as shown inFIG. 6). The tripod 25 can also include a power source used to power themount 20 (e.g., battery pack).

The system 5 is preferably configured to work with an image application.The image application can be executed by the camera 10 and/or anotherprocessor (e.g., a remote computer). The user can preferably interfacewith the image application via a display on the camera 10 and/or via anexternal display. The image application can preferably be used tocontrol the camera 10 and/or the mount 20. The image application canalso preferably be used to receive images captured by the camera 10 andto process the same. The image application can also be configured toallow user to edit images captured by the camera 10. The imageapplication can be, for example, an application that is configured torun on an APPLE IPHONE. The image application can be configured tocommunicate with network servers via a wired and/or wireless networkconnection (e.g., a 3G connection provided by a cellular serviceprovider). The image application can be configured to process and uploadimages captured by the camera 10. For example, in a cloud computingsystem, the image application can be configured to upload images to aremote server in the cloud. The image application can also be configuredto automatically communicate with a remote network-based applicationthat can process images and can be used for editing by the user.

The image application can be configured to use information provided bythe camera 10 to control the camera 10. For example, the imageapplication can be configured to receive information from sensorscontained in the camera 10 to control the camera 10 and/or the mount 20.For example, the image application can be configured to use locationinformation, GPS information, azimuth, orientation, brightness,acceleration, and sound to control the camera 10. The image applicationcan be configured to receive sensor information from the camera 10 thatcan be used to calculate the position of the camera 10. Using theposition information, the image application can be configured to controlthe camera 10 to, for example, take a series of consecutive images thatcan then be stitched together later to create a panoramic image.

In one example, the image application can be configured to control thecapture of photos by the camera 10. The image application can beconfigured to use additional information to control the parameters ofthe image capture itself (e.g., using brightness information provided bythe camera 10 to control shutter speed and aperture of the camera 10).For example, the focus, aperture, and shutter speed of the camera 10 canbe set to custom values based on algorithms that evaluate the imageand/or can be based on controls and readings available to the camera 10.The image application can be configured to use many different types ofinformation in order to control the camera 10. For example, the imageapplication can use information provided by the camera 10 (e.g., GPSinformation, brightness information, field of view, aperture, shutterspeed, focus, gyroscope information, orientation information, etc.).

The image application can be configured to take multiple images that arecombined to create a processed picture such as a panoramic, cylindrical,spherical, high dynamic range (HDR), and virtual reality images. Thisprocess can be improved by the fact that the mount 20 rotates about axesthat are aligned with one or more focal planes of the camera 10. Theimage application can be configured to process the multiple images onthe camera 10 and/or at a remote computer (e.g., a remote webpage orusing third-party image editing software). Sensor data from the camera10 can be added to the images (e.g., as metadata) that are collected bythe camera 10 order to combine the multiple images, and/or for otherprocessing. As an example, azimuth and GPS information can be used bymapping software to show the direction the camera was pointed when animage was captured. Other metadata can be included as well, such astime, date, latitude, longitude, shutter speed, aperture, white balance,lens information, etc.

The image application can be configured to capture a panoramic,cylindrical, and/or spherical image by collecting and combining multipleimages taken by the camera 10. Preferably, the image application usesfield of view information provided by the camera 10 to determine whereto position the camera 10 to collect all of the images that are used tocreate a completed panoramic, cylindrical, and/or spherical image. Forexample, the image application can be configured to control the mount 20such that all of the images used to create a final panoramic,cylindrical, and/or spherical image are automatically collected. Inaddition, the image application can also be configured to providefeedback to the user of the camera 10 to indicate where to move thecamera 10 to capture each of the images used to create a finalpanoramic, cylindrical, and/or spherical image. For example, audibleand/or physical indications can be used to alert the user of the camera10 where the next image should be taken.

The image application can be configured to control the camera 10 and/ormount 20 via, for example, a wired and/or wireless connection. Forexample, each of the following types of connections can be used: acharging/base connector, a Bluetooth connection, a WiFi connection, aninfrared transceiver, a headset jack in the camera 10 (e.g., using theLeft/right/common/ground leads), and/or other proprietary connectors.The headset jack, if present on the camera 10, can also be connected toan infrared transceiver and used to control the camera 10 and/or mount20. Audio signals created by the camera 10 can also be used as awireless link to control the mount 20.

The image application, camera 10, and/or mount 20 can be configured for“follow-me” operation. In one example of follow me operation, facialrecognition can be used to track the location of a person. In anotherexample of follow me operation, a remote control can be configured toemit a beacon of light that can be used to track the location of theremote control (e.g., keeping the beacon in the center of the frame).The light can be at any wavelength that can be detected by sensors usedwith the image application and/or camera 10. The sensors can include,for example, sensors configured to detect UV and IR bands ofelectromagnetic radiation.

The image application can be configured to provide a setup mode. In thesetup mode, the camera 10 is preferably oriented flat and a bubble levelutilizing sensors in the camera 10 can be used to level the camera byadjusting, for example, the head of a tripod.

The image application can be configured to work in variousconfigurations. In a first exemplary configuration, the imageapplication can be executed locally on the camera 10 and use the memorycontained in the camera 10 to store images. Preferably, in thisconfiguration, the image application is executed locally on the camera10 and the user is able to interface with the image application usingthe camera 10 (e.g., via a touchscreen interface on the camera 10). Theuser of the camera 10 can preferably take and edit pictures using thecamera 10, and can preferably store pictures in a memory contained inthe camera 10.

In a second exemplary configuration, the image application can beexecuted locally on the camera 10 and use a remote memory (e.g., in thecloud) to store images. In this configuration, image application ispreferably executed locally on the camera 10 and the user is ableinterface with the image application using the camera 10 (e.g., via atouchscreen interface on the camera 10). The user can preferably use theimage application to take and edit pictures using the camera 10. Theimage application is preferably configured such that the user can storepictures taken and/or edited by the camera 10 in a remotely locatedmemory (e.g., in the cloud). For example, the remotely located memorycan be a hard drive that is located in a server that is accessible viathe Internet.

In a third exemplary configuration, the image application can beexecuted remotely from the camera 10 (e.g., in a server in the cloud)and can use a memory that is located remotely from the camera 10 (e.g.,a memory in the cloud) to store images. In this configuration, the imageapplication is preferably executed on a remotely located processor. Forexample, the processor can be in physical proximity with the camera 10and/or accessible over the Internet (e.g., via a webpage). The user ofthe camera 10 can interact with the image application via, for example,a computing device having a network connection capable of communicatingwith the computer executing the image application. Using the imageapplication, the user can cause the camera 10 to take pictures. The usercan also preferably edit previously taken pictures and store thosepictures in a remotely located memory (e.g., in the cloud).

The image application can be configured to allow users to customize andsave a set of standard image profiles. These image profiles can beuploaded to the cloud to enable a user to access the image profilesregardless of the location of the user. Preferably, the image profilescan also be edited online and downloaded (or pushed) to the imageapplication. To the extent that multiple users have created imageprofiles and save these to a centrally located server, data miningapplications in the centrally located server can be configured to usethe save profiles to refine the default settings of the imageapplication.

Image Application Functional Specification

The following paragraphs describe one exemplary method of operation ofthe image application. The exemplary method of operation may be alteredby, for example, removing certain functionality and/or adding additionalfunctionality. Exemplary screen shots of the image application are shownin FIGS. 7-11).

Splash Screen

The application preferably starts with a screen briefly showing thelogo, product name, version information, and, after a brief timeout,starts where the user left off in a project, or at the project list onthe studio screen if there is no saved state, or if saved state isunusable. A splash screen is not required, and, if used, can vary fromthat described above. An exemplary splash screen is shown in FIG. 2.

Studio Screen

The Studio screen preferably shows a list of projects (e.g., as shown inFIG. 6). If there are no projects, it can show text prompting the userto create a project using a menu on this screen (e.g., as shown in FIG.8). Projects can organize images, how they are processed and combined(transforms), and the outputs or exports of the projects (e.g., jpgfiles, QuickTime VR, RAW, etc.). Projects are not required to be singledocuments. A project can refer to images that are stored in, forexample, the system's image database(s). Moving a project can involve aspecial type of “export” which is an archive containing project data andcopies of images imported and/or acquired as the inputs to the project.

A project is preferably a collection of images and compound images. Theoutputs, or exports, from a project are images in various formats thatare, in general, meant to be HDR images and/or panoramas, though, anoutput could also be a single, unprocessed image. Projects preferablystart with either an “import” of images, or by acquiring images (e.g.,using the camera 10). At any point in a project, additional images canpreferably be imported or acquired. After images are imported oracquired, the user can create an output by processing images (e.g.,specifying transforms on images) and/or organizing them into compositeimages. Composite images can be designated as outputs or exports byspecifying formats for the resulting outputs or exports.

Images and Composite Images

Multiple images captured by the camera 10 can be combined into compositeimages. Composite images can be multiple images from the sameperspective combined into a single image, or they can be, for example,multiple images combined, or stitched, into a mosaic, or panorama. Inone example, multiple single images are combined into a panorama or HDRimage. In other examples, each image in a panorama can be a compositeimage.

Panoramas are typically multiple images in single or multiple rows. Ifthe rows of a panorama are taken from perspectives covering 360 degreesaround a single point, a cylindrical panorama can be produced. Sphericalpanoramas are also possible.

Operations on Images

There are preferably two kinds of operations on images: transforms andgrouping. Transforms can alter an image or compound image, such as ablur filter, perspective shift, etc. The available set of transformsshould facilitate creating HDR images and panoramas. Transforms canoperate on whole and/or partial images. Operations can be performed bydirect manipulation when possible (e.g., dragging images into groups,and context menus enabling a selection of transforms).

Project Screen

The project screen can display images and composite images in a way thatvisually represents the content of those entities (e.g., as shown inFIG. 9). For example, individual images can be represented by thumbnailimages. Composite images consisting of images taken from the sameperspective can be visually represented by a “stack” of thumbnailimages. Groups of images comprising a panorama can be shown asthumbnails grouped into the rows of the panorama.

Acquiring Images

Setup of the camera 10 can typically be performed at any time up until ashot is started. Setup of the camera 10 can include leveling the mount20. To level the mount 20, a level indicator with bubble levels can beshown on a screen of the camera 10, and a tone can be played when themount is level. If the mount is not level, a warning tone and/or awarning dialog can appear when the user starts a shot. The user canpreferably choose to permanently dismiss the warning dialog.

Preferably, the first step in shooting is choosing the type of shot.Shots can be, for example, single frames with one or more images and/orpanoramas with multiple frames, with each frame including one or moreimages. A menu of shot types can be presented, each one a variation onthe two basic types. If a previously stored shot type has been chosen,and the user does not want to modify it, the user is ready to start theshot. If the user wants to modify a shot setup or create one fromscratch, the user can navigate to the shot setup screen by choosing tomodify a shot setup, or to create one. The default setups, and any theuser creates, can be stored in the program data, backed up to a removeserver (e.g., in the cloud), and are typically not part of a project.Shot setups can preferably be used with any project.

Using the shot setup screens (e.g., as shown in FIG. 10), the user canpreferably edit the programming for a shot. The programming that theuser can perform can vary for the different types of shots. For a singleframe, the display can show a viewfinder plus controls for setting up aframe consisting of multiple images to produce HDR, super-resolution,and other multiple image effects from a single perspective. When editingthe relationship of multiple frames in a panorama, the editor can showthe position of each frame of a panorama, information about the setup ofthe individual frames, and controls to set the parameters for thepanorama (e.g., cylindrical or less than 360 degree, number of frames,number of rows).

The shooting screen can be displayed after the shot has been set up. Inthis screen, the user can preferably configure how the image is capturedby the camera. For example, the user can be given the opportunity torelease the shutter immediately, after some preset delay, after aspecified delay. Other options to capture the image are also possible.For example, the user can capture an image by pressing thecall-answer/end-call button on a Bluetooth headset paired with thedevice containing the camera 10 (e.g., an IPHONE), and/or by using aninfrared remote. While a “shutter” has been discussed above, this is notto imply that a physical shutter is required. Other shutteringtechniques are possible (e.g., an electronic shutter).

Image Editing

Preferably, every image in a project can be edited. Editing can specifya set of transforms applied to the image. The image application can beconfigured such that the original image is always retained (e.g., backedup), and transforms can preferably be removed at any later time,reverting the image to its condition before the transform was applied.

Trash Screen

Deleted images are preferably listed in a “trash” list. The images inthe trash can be permanently deleted in low resource conditions, orexplicitly on the user's command.

Warnings and Error Reporting

The application can be configured to warn users away from performingoperations that are not strictly incorrect, but that are unlikely towork or produce a good image. For example, adding images not taken fromthe same point to a panorama, or not taken from the same perspective toa composite image from which an HDR image can be derived. These warningsshould be given throughout the program when the user performs anoperation that can be inferred to have an undesirable result, such asdeleting an image that was previously selected for saving, and/orcreating a shot setup with what could be nonsensical parameters (e.g.,too much, or too little overlap, unusual exposure settings, etc.).

Web-Based Application

The functionality described herein can also be implemented on a serverthat is accessible via the Internet, or other network. For example, aserver can be accessed by an IPHONE over a cellular network. The imageapplication can be configured with some differences when implemented asa web-based application. For example, differences in functions in a Webversion of the image application (e.g., relative to a locally hostedversion of the application) can include specifying a part of an imagefor applying a transform, showing panels instead of separate screens forlists of projects, groups, etc. Performance requirements and algorithmimplementation in web-based versions of the image application can bevaried (e.g., as Web servers generally have more computing power than aportable device, more CPU-intense processes can be used).

Organization and Workflow

The “studio” can relate to image creation. One exemplary organizationalhierarchy can be: layer>image>canvas>project. A layer is preferably asingle image. An image is preferably a set of layers from a singleperspective. Layers in the Image might include differences in exposure,focus, etc. The assumption is the layers will be edited and merged down.A canvas is preferably a collection of layers and images that areorganized. The assumption is that the images will be stitched and/ormerged as a part of a larger image. A project is preferably a collectionof layers, images and canvases that are logically organized based on aproject. The user can start by creating a new project or opening anexisting one. The user can then make the decision to create an image orcanvas. At this point, the difference between an image and a canvas iswhether or not the camera will be fixed or moved.

The user can preferably now select whether to set the focus, aperture,and exposure settings. Options can include Manual (e.g., each variableis set manually or using the floating target box and the brackets),Recommend (e.g., the image application analyzes the image and makesrecommendations on bracketing and settings), and Automatic (e.g., theuser can simply operate the shutter and the recommended settings are putin effect based on algorithms that made decisions relating tobracketing, focus, and exposure).

Creating a Canvas

This process is preferably the same as creating an image except that thecanvas is preferably defined and the brackets are preferably made basedon first sampling the canvas. When the canvas has been sampled thebrackets will preferably be set for the composite canvas and applied (ifnecessary) to the individual images. The canvas can be set manually bymoving entering “SetUp” and stepping the camera left and right to theend points and clicking on the shutter. The canvas can be specified as360 degree Pano (e.g., the camera 10 preferably steps through a fullcircle to capture images (e.g., 14 steps)), Custom Pano (e.g., the imageapplication preferably instructs the photographer to use the motorcontrol to move the camera to the left and right limits of the image andthen press the shutter button), Spherical (e.g., the camera 10 ispreferably able to create three rows of images—one row above the groundplane and one below. Setting these rows will comprise of manuallypanning the camera, perhaps with an audible detent).

In operation, referring to FIG. 12, with further reference to FIGS.1-11, a process 100 for capturing a panoramic image using the system 5includes the stages shown. The process 100, however, is exemplary onlyand not limiting. The process 100 may be altered, e.g., by having stagesadded, removed, or rearranged.

At stage 105, the user creates a new project in the image application.The project can be given an arbitrary name and/or assigned a name by theimage application.

At stage 110, the user captures one or more photographs and/or videousing the camera 10. Capture of the photographs and/or video can be donemanually and/or under the control of the image application (e.g., beingexecuted in the camera 10).

In a configuration where the user manually positions the camera 10,preferably, the display of the camera 10 includes an alignment icon 205and alignment grid 210. As each picture is taken, one of the cells inthe alignment grid 210 preferably turns a different color to indicatethat the corresponding image has been captured. After a first image iscaptured, the user moves the camera 10 to the next location. Preferably,the user is alerted of the location of the next picture by keeping thealignment icon in the center of the screen of the camera 10. In someembodiments, the alignment grid 210 can change colors when the camera isproperly aligned for the next shot. As successive pictures are taken,individual cells of the alignment grid 210 change color to indicate apicture for that location has been captured. The user can preferablysee, at a glance, which pictures are missing from the pictures needed tocreate a composite image.

In a configuration where the camera 10 controls a motorized version ofthe mount 20, the camera 10 is configured to calculate the positioningof the camera 10. The calculations can be accomplished using, forexample, sensors that are present in the camera 10, such as, GPS,accelerometer, compass, facial recognition, etc. The camera 10 cancalculate the various positions needed to produce a final compositeimage and control the mount 20 accordingly. The camera 10 canautomatically capture the desired images as the mount 20 moves thecamera 10.

At stage 115, images captured by the camera 10 are saved to a memory.The storage can be present locally in the camera 10 and/or can belocated remotely over a network connection. Each individual imagecaptured by the camera 10 can be saved as captured, or saved in a bulkmanner. The image application can be configured to save some pictures inthe camera 10 and to save others (e.g. backup copies) in a remotestorage location.

At stage 120, images captured by the camera 10 are processed by theimage application. Preferably, the image application merges multipleimages captured by the camera 10 in order to create a composite imagesuch as a panoramic, spherical, cylindrical, VR, and/or HDR image. Thiscan be accomplished by, for example, stitching together the multipleimages captured by the camera 10. The processing can be performedlocally on the camera 10 and/or remotely (e.g., in a remote processorand/or in the cloud).

Other embodiments are within the scope and spirit of the invention.

The subject matter described herein can be implemented in digitalelectronic circuitry, or in computer software, firmware, or hardware,including the structural means disclosed in this specification andstructural equivalents thereof, or in combinations of them. The subjectmatter described herein can be implemented as one or more computerprogram products, such as one or more computer programs tangiblyembodied in an information carrier (e.g., in a machine-readable storagedevice), or embodied in a propagated signal, for execution by, or tocontrol the operation of, data processing apparatus (e.g., aprogrammable processor, a computer, or multiple computers). A computerprogram (also known as a program, software, software application, orcode) can be written in any form of programming language, includingcompiled or interpreted languages, and it can be deployed in any form,including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment. Acomputer program does not necessarily correspond to a file. A programcan be stored in a portion of a file that holds other programs or data,in a single file dedicated to the program in question, or in multiplecoordinated files (e.g., files that store one or more modules,sub-programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The processes and logic flows described in this specification, includingthe method steps of the subject matter described herein, can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions of the subject matter describedherein by operating on input data and generating output. The processesand logic flows can also be performed by, and apparatus of the subjectmatter described herein can be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processor of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for executing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto-optical disks, or optical disks. Information carrierssuitable for embodying computer program instructions and data includeall forms of non-volatile memory, including by way of examplesemiconductor memory devices, (e.g., EPROM, EEPROM, and flash memorydevices); magnetic disks, (e.g., internal hard disks or removabledisks); magneto-optical disks; and optical disks (e.g., CD and DVDdisks). The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, the subject matter describedherein can be implemented on a computer having a display device, e.g., aCRT (cathode ray tube) or LCD (liquid crystal display) monitor, fordisplaying information to the user and a keyboard and a pointing device,(e.g., a mouse or a trackball), by which the user can provide input tothe computer. Other kinds of devices can be used to provide forinteraction with a user as well. For example, feedback provided to theuser can be any form of sensory feedback, (e.g., visual feedback,auditory feedback, or tactile feedback), and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The subject matter described herein can be implemented in a computingsystem that includes a back-end component (e.g., a data server), amiddleware component (e.g., an application server), or a front-endcomponent (e.g., a client computer having a graphical user interface ora web browser through which a user can interact with an implementationof the subject matter described herein), or any combination of suchback-end, middleware, and front-end components. The components of thesystem can be interconnected by any form or medium of digital datacommunication, e.g., a communication network. Examples of communicationnetworks include a local area network (“LAN”) and a wide area network(“WAN”), e.g., the Internet.

While the foregoing application primarily discusses the camera 10capturing photographs, it will be recognized that video images can alsobe captured and processed.

It is noted that one or more references are incorporated herein. To theextent that any of the incorporated material is inconsistent with thepresent disclosure, the present disclosure shall control. Furthermore,to the extent necessary, material incorporated by reference hereinshould be disregarded if necessary to preserve the validity of theclaims.

Further, while the description above refers to the invention, thedescription may include more than one invention.

What is claimed is:
 1. A system comprising: a camera that includes alens having an aperture; a tripod configured to support the camera; amount configured to be coupled the tripod and to the camera, the mountincluding a pivot that is configured such that the camera is rotatablearound an axis that is aligned with the aperture of the camera; a motorconfigured to control the rotation of the mount; a memory containingcomputer readable instructions, that when executed by a processor, causethe processor to: calculate a desired position of the camera usingsensor information; control the motor such that the camera is moved tothe desired position; control the shutter of the camera to capture animage; and store the captured image.
 2. The system of claim 1, whereinthe processor is included in the camera.
 3. The system of claim 1,wherein the motor is configured to control the rotation of the mountaround a vertical axis that is aligned with the aperture of the camera.4. The system of claim 1, wherein the computer readable instructions arefurther configured to cause the processor to capture a plurality ofimages that are combinable to create a composite image.
 5. The system ofclaim 4, wherein the composite image is selected from the groupconsisting of a panoramic image, a cylindrical image, a spherical image,and a high dynamic range image.
 6. The system of claim 4, wherein thewherein the computer readable instructions are further configured tocause the processor to combine the plurality of images to create acomposite image.
 7. A non-transitory computer readable medium includingcomputer readable instructions that, when executed by a processor, areconfigured to cause the processor to: control the operation of a camera;collect information from a sensor in the camera; process the sensorinformation to calculate a position of the camera; control a motorattached to the camera to position the camera using the calculatedposition, wherein the motor is configured to rotate the camera around anaxis that is aligned with an aperture of the camera; capture an imageusing the camera; and store the captured image.
 8. The computer readableinstructions of claim 7, wherein the computer readable instructions areexecuted in a processor included in the camera.
 9. The computer readableinstructions of claim 7, wherein controlling the motor includescontrolling the rotation of the camera around a vertical axis that isaligned with the aperture of the camera.
 10. The computer readableinstructions of claim 7, wherein the computer readable instructions arefurther configured to cause the processor to capture a plurality ofimages that are combinable to create a composite image.
 11. The computerreadable instructions of claim 10, wherein the computer readableinstructions are further configured to cause the processor to create aplurality of images that are combinable into at least one of a panoramicimage, a cylindrical image, an spherical image, and a high dynamic rangeimage.
 12. The computer readable instructions of claim 10, wherein thecomputer readable instructions are further configured to cause theprocessor to combine the plurality of images to create a compositeimage.